<?php
/**
 * Nadëb (Makú-Nadëb)
 * 
 * @author     Mateus Martins <mateusweb@gmail.com>
 * @copyright  Copyright 2010 mateusweb.com.br
 * @license    http://www.gnu.org/licenses/gpl.html | GPL
 * @package    Nadeb
 * @version    1.0.0
 */


/**
 * Class Nadeb_Header
 * Monta um array para o header html baseado em um arquivo ini
 * 
 * @category   Nadeb
 * @package    Nadeb_Header
 * @copyright  Copyright 2010 mateusweb.com.br
 * @license    http://www.gnu.org/licenses/gpl.html | GPL
 */
class Nadeb_Header 
{
	
	/**
	 * @var object
	 */
	protected static $_instance = null;
	
	/**
	 * @var array
	 */
	private $header;
	
	/**
	 * Metodo Construtor
	 * 
	 * @return void
	 */
	private function __construct()
	{
	}
	
    /**
     * Retorna a instancia de Nadeb_Header
     * Implementação do Singleton pattern 
     *
     * @return Nadeb_Header
     */
    public static function get_instance()
    {
        if (null === self::$_instance)
        {
            self::$_instance = new self();
        }

        return self::$_instance;
    }
    
	public function set_headers($_value)
	{
		$this->header[0] = array_merge_recursive( $this->header[0], $_value );
	}

	public function get_headers()
	{
        return $this->header[0];
    }
    
    public function new_js($_file)
    {
    	$headers['script']['js'][] = $_file;
    	 
		$jsHeader = Nadeb_Header::get_instance();
		$jsHeader->set_headers($headers);
    }
    
    public function new_css($file)
    {
    	$header['css']['screen'][] = $file;
		$headers = Nadeb_Header::get_instance();
		$headers->set_headers( $header );
    }
	
	/**
	 * Monta um array para o header html baseado em um arquivo ini
	 * Caso não encontre um arquivo ini com o nome do controller 
	 * usa o arquivo padrão e monta a estrutura do header em um array
	 * 
	 * @param array $_params
	 * @return void
	 */
	public function aplyDefaultHeader($_params)
	{
		$controller = $_params["controller"];
		$module     = $_params["module"];
		
		$defaultHeaders  = new Zend_Config_Ini("./application/ini/$module/headers/index.ini", "headers");
		
		$atualHeaders     = "";
		if ( file_exists( "./application/ini/$module/headers/$controller.ini" ) )
		{
			$atualHeaders = new Zend_Config_Ini("./application/ini/$module/headers/$controller.ini", "headers");
			
			$headers = array_merge( $defaultHeaders->toArray(), $atualHeaders->toArray() );
		}
		else
		{
			$headers = $defaultHeaders->toArray();
		}
		
		$this->header[0] = $headers;
	}
}